home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr23 / csmac13a.zip / CS-ACTON.CSM next >
Text File  |  1995-01-22  |  21KB  |  547 lines

  1.  
  2.  ┌────────────────────────────────┐
  3.  │  Chuck Seyboldt's COMMO Macro  │   CS-MAC13A:CS-ACTON.CSM
  4.  └────────────────────────────────┘   Copyright (c) 1995
  5.                                       All rights reserved
  6.  {:|}    {send ~|}      {retu}
  7.  {:n}    {send ~n}      {retu}
  8.  {:n|}   {send ~n|}     {retu}
  9.  {:y|}   {send ~y|}     {retu}
  10.  {:loe}  {send ~^[^[}   {retu}
  11.  
  12.     ┌──────────────────────────────────┐
  13. ┌───┤  COMMO "ACTION processor" macro  ├───
  14.     └──────────────────────────────────┘
  15.   *
  16.   *  CS-ACTON.CSM reads simple ASCII files and sends commands and
  17.   *  strings to the BBS based on the ACTION file.  Setup for PCBoards.
  18.   *
  19.   *  You may make an ACTION file manually with a text editor.
  20.   *  An ACTION file generator is included later as the :act_alf macro command.
  21.   *  Located in the COMMO home dir, the ACTION file has this sort of format:
  22.   *
  23. *┌───────────────────────────────  action.nl  ─┐
  24. *│ u                                           │ < "U" for upload
  25. *│ filename.ul                                 │ < Name the file to u/l
  26. *│ A line of file description.  Up to 45 chars │ < description
  27. *│ in length.  Multiple line descriptions are  │
  28. *│ supported if your BBS host allows them.     │
  29. *│ --                                          │ < "--" to end ACTION item
  30. *│ d                                           │ < "D" for download
  31. *│ file1.dl                                    │ < batch downloads allowed
  32. *│ another.zip                                 │
  33. *│ filemore.lhz                                │
  34. *│ --                                          │ < "--" is important
  35. *│ u                                           │
  36. *│ another.zip                                 │
  37. *│ /Private to the sysop.  Thanks for the fish │
  38. *│ --                                          │ < Esp. at the very end.
  39. *└─────────────────────────────────────────────┘
  40.   *
  41.  {:action}
  42.          {ifca ,off_line}
  43.          {sete-p0 act_esc}
  44.          {setv action,on}                    ;flag for protocol routines
  45.          {ifex %_hom%action.%abbr,,act_esc}
  46.          {rope %_hom%action.%abbr,act-end}   <- START here
  47.  {:reread}
  48.          {pops-c}
  49.          {setl 60,,10,|}
  50.          {read cmd}                          ;read line of ACTION file
  51.          {comp cmd,--}  {ifco reread}        ;branch to appropriate ACTION
  52.          {comp cmd,a}   {ifco asciup}
  53.          {comp cmd,j}   {ifco joincn}
  54.          {comp cmd,d}   {ifco dlfile}
  55.          {comp cmd,u}   {ifco ulfile}
  56.          {comp cmd,z}   {ifco zippy}
  57.          {comp cmd,g}   {ifco g_bye}         ;if no match, end ACTION
  58.  
  59.  {:act-end}                                  ;When at end of ACTION list
  60.          {exec-n echo ^j*-*-* %_dat %_tim >> %savedir\used-act.%abbr}
  61.          {exec-n type %_hom%action.%abbr  >> %savedir\used-act.%abbr}
  62.          {exec-n del  %_hom%action.%abbr>NUL}
  63.          {setv line}  {setv fname}
  64.          {setv cmd}   {setv bb}
  65.  {:act_esc}  {rclo}                          ;Close files on abort
  66.          {setv action}                       ;clear "in action" flag
  67.          {goto noact,cs-logon.csm}           <-  END here
  68.  {:off_line}
  69.          {info-d10s0 CS-ACTON.CSM in an ON-Line macro}
  70.          {goto alm}
  71.  
  72.  ┌──────────────────────────────┐
  73.  │  Download processor section  │
  74.  └──────────────────────────────┘
  75.  {:dlfile}
  76.          {send %cmd%|}                  ;Setup is for Zmodem BATCH downloads
  77.          {golo skip,not avai}           ;If host doesn't allow d/l, skip it
  78.  {:next-d}{read fname}                  ;Read one complete line into %fname%
  79.          {inst fname,--} {ifco do-dl}
  80.          {ifex %dldir\%fname,next-d}    ;Don't try to d/l files that exist
  81.          {send-n %fname% }              ;Send filename to BBS
  82.          {goto next-d}                  ;Repeat read tip dl-list is all read
  83.  {:do-dl}{send |~~|~~|}                 ;Start download
  84.          {call dl_file}                 ;call file download subroutine
  85.          {setl 30,,10,|}
  86.          {look %bbs_pmt}
  87.          {goto reread}                  ;end of "D" ACTION processor
  88.  
  89.  ┌────────────────────────────┐
  90.  │  Upload processor section  │
  91.  └────────────────────────────┘
  92.  {:ulfile}
  93.          {read fname}                   ;Upload ACTION starts
  94.          {ifex %uldir\%fname,,skip}     ;Make sure file exists on your disk
  95.          {send-n u %fname%}             ;Tell host to get ready for u/l
  96.          {send ~~|}
  97.          {golo skip,Insufficient}       ; disk space for complete upload!
  98.          {golo skip,not avai}           ;If host doesn't allow u/l, or
  99.          {golo skip,y exists}           ;If host says file already exists,
  100.          {golo skip,plicates}           ;  skip this u/l action item.
  101.          {look ximum)}                  ;Host is ready for description.
  102.  {:desc} {read line}
  103.          {comp line,--}                 ;Check for end of u/l action
  104.          {ifco ul_ok}
  105.          {send-n %line%}                ;Send description line
  106.          {send |}
  107.          {goto desc}                    ;and look for more description
  108.  {:ul_ok}{send ~|}
  109.          {call ul_file}                 ;call file transfer protocol
  110.          {setl 60,,30,|}                ;Allow time for file validation
  111.          {push}
  112.          {golo |,remain online...}      ;for upload processing OK
  113.          {look %bbs_pmt}
  114.          {goto reread}                  ;end of "U" ACTION processor
  115.  
  116.  ┌────────────────────────────┐
  117.  │  Skip to next action item  │
  118.  └────────────────────────────┘
  119.  {:skip} {read line}                    ;SKIP section jumps to next
  120.          {comp line,--}                 ;  action item by reading to
  121.          {ifco ,skip}                   ;  the next "--" string.
  122.          {send |}
  123.          {setl 50,,3,|}
  124.          {look %bbs_pmt}
  125.          {goto reread}                  ;alternate end of "U" processor
  126.  
  127.   *  ASCII uploads take a special form.  Here is an example message.
  128.   *  You may need to structure ASCII upload messages differently.
  129.   *
  130. *┌──────────────────────────────────  hijack ──┐
  131. *│ jack kilday                                 │ < Message Recipient
  132. *│ Thanks for the Fish                         │ < Message Subject
  133. *│ n                                           │ < Public/Private msg flag
  134. *│ u                                           │ < Use ASCII u/l, not editor
  135. *│ Hi Jack,                                    │
  136. *│                                             │
  137. *│     Just stopping in with a test of a COMMO │
  138. *│ ACTION macro processor.  I also wanted to   │
  139. *│ give you a big THANK YOU for all the fish.  │
  140. *│ They were delicious.                        │
  141. *│                                             │
  142. *│                                   Chuck·S   │
  143. *└─────────────────────────────────────────────┘
  144.   *
  145.  {:asciup}
  146.          {read fname}                   ;ASCII upload to PCBoard system
  147.          {ifex %dldir\%fname%,,reread}
  148.          {parm ,,,,2}                   ;Set character pacing
  149.          {send e|}                      ;Send "E" to start message entry
  150.          {asci %dldir\%fname%}          ;Send the structured message
  151.          {parm ,,,,0}                   ;No character pacing
  152.          {send ~~|~~~sn|}               ;the PCBoard "save" command
  153.          {look %bbs_pmt}
  154.          {goto reread}                  ;end of "A" processor
  155.  
  156.  ┌───────────────────────────┐
  157.  │  Join conference section  │
  158.  └───────────────────────────┘
  159.  {:joincn}
  160.          {read fname}                   ;Join PCBoard Conference
  161.          {send-n j %fname} {send |}
  162.          {push}
  163.          {golo n|,)=yes?}               ;Skip mail scan
  164.          {golo |,invalid}               ;If you choose invalid conf
  165.          {golo n|,(H)elp}               ;If you chose invalid conf
  166.          {golo 0|,none?}                ;To conf 0 on invalid conf
  167.          {look %bbs_pmt}  {pops}
  168.          {goto reread}                  ;end of "J" processor
  169.  
  170.  ┌──────────────────────┐
  171.  │  Zippy scan section  │
  172.  └──────────────────────┘
  173.  {:zippy}
  174.          {read fname}
  175.          {clea}
  176.          {send-n z %fname a}  {send |}
  177.          {capt y,%savedir\zippy.%abbr}
  178.          {exec-n echo OPENED  ■  %_dat %_tim^j>> %_cap}
  179.          {push}
  180.          {golo |,more?}
  181.          {look %bbs_pmt}  {pops}
  182.          {clea}
  183.          {exec-n echo CLOSED  ■  %_dat %_tim^j■-■-■>> %_cap}
  184.          {capt n}
  185.          {goto reread}
  186.  
  187.  ┌───────────────────┐
  188.  │  Goodbye section  │
  189.  └───────────────────┘
  190.  {:g_bye}{rclo}
  191.          {exec-n echo ^j*-*-* %_dat %_tim >> %savedir\used-act.%abbr}
  192.          {exec-n type %_hom%action.%abbr  >> %savedir\used-act.%abbr}
  193.          {exec-n del  %_hom%action.%abbr>NUL}
  194.          {setv line}  {setv fname}
  195.          {setv cmd}   {setv bb}
  196.          {goto byz2,cs-logon.csm}
  197.  
  198.     ┌───────────────────────────────────┐
  199. └───┤  End Of "ACTION processor" macro  ├───────
  200.     └───────────────────────────────────┘
  201.  
  202.     ┌─────────────────────────────┐
  203. ┌───┤  "ACTION generator"  macro  ├───
  204.     └─────────────────────────────┘
  205.   *
  206.   *  This macro uses PKUNZIP to automatically insert the file
  207.   *  description from a DESC.SDI or a FILE_ID.DIZ that might be
  208.   *  found in a ZIP file.
  209.   *
  210.   *  This macro isn't commented.  It is pretty easy to follow.
  211.  
  212.  {:act_alf}
  213.          {sete-p0 no_del}
  214.          {inpu abbr,Make ^(ACTION^) file:  What BBS?}   <- START Here
  215.          {comp abbr}    {ifco do_ap}
  216.          {subs abbr,1,2,%abbr}
  217.  {:opena}{wope-a %_hom%action.%abbr}
  218.  
  219.  {:icmnd}{setv cmd} {setv fname} {setv line}
  220.          {setv _menu1, D   Download}
  221.          {setv _menu2, U   Upload}
  222.          {setv _menu3, Z   Zippy scan}
  223.          {setv _menu4, A   Ascii Upload}
  224.          {setv _menu5, J   Join Conf}
  225.          {setv _menu6, G   Goodbye}
  226.          {setv _menu8, X   eXit & Edit}
  227.          {setv _menter,e_cmnd}
  228.          {setv _mlabel,makeau,,,makedl,,,makegb,,,makejn,,,,,,,,,,,makeul,,,e_cmnd,,makezi}
  229.          {menu 12,18, Action  (%abbr%) }
  230.  {:e_cmnd}
  231.          {wclo}
  232.          {setv file}
  233.          {file %_hom%action.%abbr}
  234.          {comp %_ffs,9} {ifco-l do_del}         ;check for empty ACTION
  235.          {edit %_hom%action.%abbr}
  236.          {file %_hom%action.%abbr}
  237.          {comp %_ffs,9} {ifco-l ,no_del}        ;check for empty ACTION
  238.  {:do_del}{exec-n del %_hom%action.%abbr>NUL}   ;delete if empty
  239.  {:no_del}{setv cmd} {setv fname} {setv line}
  240.          {retu}                                 <- END Here
  241.  
  242.  {:makegb}
  243.          {writ g}
  244.          {writ --}
  245.          {goto e_cmnd}
  246.  
  247.  {:makejn}
  248.          {inpu fname,Name or Number of Conference to Join}
  249.          {comp fname}   {ifco icmnd}
  250.          {writ j}
  251.          {writ %fname}
  252.          {writ --}      {goto icmnd}
  253.  
  254.  {:makeau}
  255.          {inpu fname,Name the ASCII Upload}
  256.          {comp fname}   {ifco icmnd}
  257.          {ifex %dldir\%fname,,makeau}
  258.          {writ a}
  259.          {writ %fname}
  260.          {writ --}      {goto icmnd}
  261.  
  262.  {:makedl}
  263.          {setv fname}   {setv count,1}
  264.          {inpu fname,Name a File that you want to Download}
  265.          {comp fname}   {ifco icmnd}
  266.          {writ d}
  267.  {:dlmore}
  268.          {writ %fname}
  269.          {incr count}   {setv fname}
  270.          {inpu fname,File #%count% to Download?}
  271.          {comp fname}   {ifco ,dlmore}
  272.          {writ --}      {goto icmnd}
  273.  
  274.  {:makeul}
  275.          {inpu fname,Name the File to Upload}
  276.          {comp fname}   {ifco icmnd}
  277.          {ifex %uldir\%fname,descul,makeul}
  278.  {:descul}
  279.          {setv file,file_id.diz}
  280.          {exec-d %pk_un -v %uldir\%fname desc.sdi file_id.diz}
  281.          {ifer 1,,diz_dsc}
  282.          {setv count,1}
  283.          {setv line}
  284.          {inpu line,One line description of %fname% Required}
  285.          {comp line}    {ifco icmnd}
  286.          {writ u}       {write %fname}
  287.          {writ %line}   {incr count}
  288.  {:mdesc}{setv line}    {inpu line,Line %count% of %fname% description}
  289.          {comp line}    {ifco endul}
  290.          {writ %line}   {incr count}
  291.          {goto mdesc}
  292.  {:endul}{exec-n del %ramdr\%file>NUL}
  293.          {writ --}
  294.          {goto icmnd}
  295.  
  296.  {:diz_dsc}
  297.          {writ u}       {write %fname}
  298.  {:add_desc}
  299.          {exec-d %pk_un -v %uldir\%fname %file}
  300.          {ifer 1,chk_sdi}
  301.          {exec-s %pk_un -o %uldir\%fname %ramdr\ %file}
  302.          {rope %ramdr\%file,endul}
  303.  {:diz_lp}
  304.          {read line}
  305.          {writ %line}
  306.          {goto diz_lp}
  307.  {:chk_sdi}
  308.          {setv file,desc.sdi}
  309.          {goto add_desc}
  310.  
  311.  {:makezi}
  312.          {inpu fname,Zippy Scan Text}
  313.          {comp fname}   {ifco icmnd}
  314.          {writ z}
  315.          {writ %fname}
  316.          {writ --}      {goto icmnd}
  317.  
  318.     ┌───────────────────────────────────┐
  319. └───┤  End Of "ACTION generator" macro  ├───────
  320.     └───────────────────────────────────┘
  321.  
  322.  ┌──────────────────────────────────────┐
  323.  │  File Transfer protocol subroutines  │
  324.  └──────────────────────────────────────┘
  325.   *  This arrangement provides a method to easily expand the file
  326.   *  transfer protocols that one might use.
  327.  
  328.  {:fp__z}  {setv prot,z}         {retu}
  329.  {:f_prot} {setv _prot,%prot}    {retu}
  330.  {:or_prot}{setv _prot,%or_prot} {retu}
  331.  
  332.  {:ul_file}
  333.          {comp prot} {ifco-c fp__z}     ;default protocol is "Z"
  334.          {comp or_prot}                 ;use override protocol if defined
  335.          {ifco-c f_prot,or_prot}
  336.          {exec-n echo %uldir\%fname> %_hom%^(send^).lst}
  337.          {setl 15,um_#}
  338.          {golo uac_s,^xSMODEM}
  339.          {golo uac_k,^a# N3}
  340.          {golo uac_z,^xB01}
  341.          {look File upload protocol} {}
  342.  
  343.  {:uac_s} {setv _prot,s} {goto um_#}    ;protocol macros in CS-COMMO.CSM
  344.  {:uac_k} {setv _prot,k} {goto um_#}
  345.  {:uac_z} {setv _prot,z} {goto um_#}
  346.  
  347.  {:dl_file}
  348.          {comp prot} {ifco-c fp__z}     ;default protocol is "Z"
  349.          {comp or_prot}                 ;use override protocol if defined
  350.          {ifco-c f_prot,or_prot}
  351.          {setl 15,dm_#}
  352.          {sslo ss_r,tinue? ( )}         ;batch download prompt
  353.          {golo reread,%bbs_pmt}         ;if no filenames matched
  354.          {golo dac_s,^xSMODEM}          ;host action can over-ride
  355.          {golo dac_k,^a5 S~}            ; mistaken protocol at CS-COMMO
  356.          {golo dac_z,^xB00}
  357.          {look File download protocol} {}
  358.  
  359.  {:dac_s} {setv _prot,s} {goto dm_#}    ;protocol macros in CS-COMMO.CSM
  360.  {:dac_k} {setv _prot,k} {goto dm_#}
  361.  {:dac_z} {setv _prot,z} {goto dm_#}
  362.  
  363.  
  364.  ┌────────────────────────────────┐
  365.  │  Chuck Seyboldt's COMMO Macro  │   CS-MAC13A:CS-INET
  366.  └────────────────────────────────┘   Copyright (c) 1995
  367.   *
  368.   *  This macro is used to access internet directories for telnet,
  369.   *  finger, and ftp purposes.
  370.   *  It contains the VT102 key set.
  371.   *  File transfer initiation can use auto-start strings or Alt-Z
  372.  
  373.  {:trying} {setv _dialsr,%_dialsr,Trying} {retu}
  374.  {:sq_lb}  {setv _dialsr,%_dialsr,[}      {retu}
  375.  {:connect}{setv _dialsr,%_dialsr,CONNECT}{retu}
  376.  
  377.  {:start_in}
  378.          {noca a_unlo}
  379.          {setv fon,%_fon}               ;Save .FON name
  380.          {inst %_dialsr,Trying} {ifco-c ,trying}   ;dial success response
  381.          {inst %_dialsr,[}      {ifco-c ,sq_lb}    ;additions
  382.          {inst %_dialsr,CONNECT}{ifco-c ,connect}
  383.          {setv dialpf,%_dialpf}         ;Save dial prefix
  384.          {setv dialsf,%_dialsf}         ;Save dial suffix
  385.          {setv _dialsf,|}
  386.  
  387.          {inst _ela,:}
  388.          {setv pos,%_pos}{decr pos}
  389.          {subs min,1,%pos,%_ela}        ;initialize elapsed timer
  390.          {subs sec,-2,2,%_ela}
  391.  
  392.  {:nfb}  {setv _menu1,   F  ■  Ftp}      _dialsr=Connected
  393.          {setv _menu2,   N  ■  fiNger}   _dialsr≈[blah.blah.blah]
  394.          {setv _menu3,   T  ■  Telnet}   _dialsr=Trying
  395.          {setv _menu4,   U  ■  Unload}
  396.          {setv _menter,a_unlo}
  397.          {setv _mlabel,,,,,,in_mf,,,,,,,,in_mn,,,,,,in_mt,a_unlo}
  398.          {menu 8,13,internet}
  399.          {}
  400.  
  401.  {:in_mf}
  402.          {fonf ftp.adr}
  403.          {setv _dialpf,ftp }
  404.          {goto in_dial}
  405.  
  406.  {:in_mn}
  407.          {fonf finger.adr}
  408.          {setv _dialpf,finger }
  409.          {goto in_dial}
  410.  
  411.  {:in_mt}
  412.          {fonf telnet.adr}
  413.          {setv _dialpf,telnet }
  414.          {goto in_dial}
  415.  
  416.  {:ald}
  417.  {:in_dial}
  418.          {setv ad}
  419.          {setv cd}
  420.          {setv _pas}
  421.          {setv login}
  422.          {inst _ela,:} {setv pos,%_pos} {decr pos}
  423.          {subs e_min,1,%pos,%_ela} {incr min,%e_min}     ;update %min & %sec
  424.          {subs e_sec,-2,2,%_ela}   {incr sec,%e_sec}
  425.          {divi sec,60}
  426.          {incr min,%sec}  {setv sec,%_rem}               ;%min & %sec hold
  427.          {dial} {}                                       ; time between dials
  428.  
  429.  {:padsec} {setv d_sec,0%d_sec}   {retu}
  430.  
  431.  {:alt}  {setv d_min,%min}        {setv d_sec,%sec}      ;%d_xxx = Cum online
  432.          {inst _ela,:} {setv pos,%_pos} {decr pos}
  433.          {subs e_min,1,%pos,%_ela} {incr d_min,%e_min}   ;update Cum time each
  434.          {subs e_sec,-2,2,%_ela}   {incr d_sec,%e_sec}   ; time Alt-T is called
  435.          {divi d_sec,60}
  436.          {incr d_min,%d_sec}      {setv d_sec,%_rem}
  437.          {leng %d_sec}{comp _len,2} {ifco-lc padsec}
  438.          {setv ela,%d_min%:%d_sec}                       ;%ela is Cum online
  439.          {info-d5s0 %ela Total / %_ela at %_nam} {}
  440.  
  441.  {:nfa}
  442.          {setv _menu1,  1  ■  Login=%login
  443.          {setv _menu2,  2  ■  Pass=%_pas
  444.          {setv _menu3,  3  ■  Ad=%ad
  445.          {setv _menu4,  4  ■  Cd=%cd
  446.          {setv _menu5,  5  ■  Unload
  447.          {setv _mlabel,in_a,in_b,in_c,in_d,a_unlo}
  448.          {menu 9,30,%_num}
  449.          {}
  450.  
  451.  {:in_a} {send ~~%login|} {}
  452.  {:in_b} {send ~~%_pas|}  {}
  453.  {:in_c} {send ~~%ad|}    {}
  454.  {:in_d} {send ~~%cd|}    {}
  455.  {:a_unlo}{call restore}  {unlo}
  456.  
  457.  {:restore}
  458.          {fonf %fon}    {setv fon}
  459.          {setv _dialpf,%dialpf} {setv dialpf}
  460.          {setv _dialsf,%dialsf} {setv dialsf}
  461.          {setv login}
  462.          {setv ad}
  463.          {setv cd}
  464.          {retu}
  465.  
  466.  ┌──────────────────────┐
  467.  │  COMMO.SET defaults  │
  468.  └──────────────────────┘
  469.   *  Edit this to your COMMO.SET default values.  When things get
  470.   *  messed-up, this makes recovery simpler
  471.  
  472.  {:cf1}  {fonf commo.fon}
  473.          {setv _dialpf,AT&M4&K0M0DT }
  474.          {setv _dialsf,|}
  475.          {setv _dialsr,CONNECT}
  476.          {unlo}
  477.  
  478.  ┌──────────────────┐
  479.  │   Logon Macros   │
  480.  └──────────────────┘
  481.  
  482.  {:xyz}  {}
  483.  
  484.  ┌──────────────────┐
  485.  │ VT102 Macro File │
  486.  └──────────────────┘
  487.  
  488. IMPORTANT!  The PgUp and PgDn keys are part of VT102 emulation.  To see the
  489. upload or download menus, press Alt-Z (File Transfer Menu).
  490.  
  491. See Appendix E for information about the key assignments and how to use this
  492. file.
  493.  
  494. ───────────────────────────────────────────────────────────────────────────
  495.  
  496.  {:hom} {send ^[[H} {}           Home
  497.  {:chm} {send ^[[L} {}           ^Home
  498.  {:pgu} {send ^[[Or} {}          PgUp
  499.  {:cpu} {send ^[[M} {}           ^PgUp
  500.  {:pgd} {send ^[[Oq} {}          PgDn
  501.  {:cpd} {send ^[[H^[[2J} {}      ^PgDn
  502.  {:end} {send ^[[K} {}           End
  503.  
  504.  {:upa} {vtcur ^[[A|^[OA} {}     Up Arrow
  505.  {:dna} {vtcur ^[[B|^[OB} {}     Down Arrow
  506.  {:lfa} {vtcur ^[[D|^[OD} {}     Left Arrow
  507.  {:rta} {vtcur ^[[C|^[OC} {}     Right Arrow
  508.  
  509.  {:ins} {send ^[On} {}           Insert
  510.  {:del} {send } {}              Delete
  511.  
  512.  {:bsp} {send ^H} {}             Backspace
  513.  {:cbs} {send } {}              ^Backspace
  514.  
  515.  {:nf1} {send ^[OP} {}           F1  (PF1)
  516.  {:nf2} {send ^[OQ} {}           F2  (PF2)
  517.  {:nf3} {send ^[OR} {}           F3  (PF3)
  518.  {:nf4} {send ^[OS} {}           F4  (PF4)
  519.  
  520.  {:kp0} {vtpad 0|^[Op} {}        Keypad 0
  521.  {:kp1} {vtpad 1|^[Oq} {}        Keypad 1
  522.  {:kp2} {vtpad 2|^[Or} {}        Keypad 2
  523.  {:kp3} {vtpad 3|^[Os} {}        Keypad 3
  524.  {:kp4} {vtpad 4|^[Ot} {}        Keypad 4
  525.  {:kp5} {vtpad 5|^[Ou} {}        Keypad 5
  526.  {:kp6} {vtpad 6|^[Ov} {}        Keypad 6
  527.  {:kp7} {vtpad 7|^[Ow} {}        Keypad 7
  528.  {:kp8} {vtpad 8|^[Ox} {}        Keypad 8
  529.  {:kp9} {vtpad 9|^[Oy} {}        Keypad 9
  530.  {:kp.} {vtpad .|^[On} {}        Keypad .
  531.  
  532.  {:gr*} {vtpad ,|^[Ol} {}        Keypad ,
  533.  {:gr-} {vtpad -|^[Om} {}        Keypad -
  534.  {:gr+} {vtpad %_ent|^[OM} {}    Keypad Enter
  535.  
  536.  
  537.   Macro for File Transfers (press Alt-Z)
  538.   ────────────────────────────────────────────────────────────────────────────
  539.   {:alz}
  540.    {setv _menu1, D ≡ Download menu}
  541.    {setv _menu3, U ≡ Upload menu}
  542.    {setv _mlabel,,,,mpd,,,,,,,,,,,,,,,,,mpu}
  543.    {setv _mcolor,%menu_clr}
  544.    {menu 7,20,Utility Menu} {}
  545.  
  546.                                  - end -
  547.